To realize a high capacity, a recent nonvolatile semiconductor memory adopts a multilevel technology for storing bits in one memory cell. However, in this technology, margins for threshold distributions in a fixed voltage range are small, and an erroneous write/read problem occurs. Thus, an error correction technology for correcting wrong data into correct data is adopted in addition to the multilevel technology, thereby realizing high reliability of the nonvolatile semiconductor memory.
However, a satisfactory countermeasure for an increase in write time which is another undesirable effect of the multilevel technology has not been found yet. For example, if the number of bits to be stored in one memory cell increases to 3, 4, or 5, a time required for transferring data from a controller to the nonvolatile semiconductor memory also increases in proportion to this increment.